<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>正则|this</title>
    <script src="jquery-1.12.4.js"></script>
    <script>
        window.onload = function(){
            //this 关键字，指的是调用函数的那个对象
            //自调用函数，this指向的是window
            var x = 1;
            function f(){
                this.x = 2;//this 为 window(默认-未绑定对象时)
                console.log(this);
            }
            f();


            //f1由o调用,this实际是对象o
            var f1 = function(){
                console.log(this);
            }
            var o = {};
            o.name = 'hanley';
            o.action = f1;
            o.action();

            //构造函数引用 this
            function FF(name,age){
                this.name = name;
                this.age = age;
            };
            var ff = new FF('Hanley',20);


            //改变this指向 call apply
            var name = '123';
            function fu(){
                return this.name;
            };
            var oo = {};
            oo.name = 'Hanley';
            oo.action = fu;
            console.log(oo.action());
            console.log(oo.action.apply());// 123, apply()无参时，表示window
            console.log(oo.action.apply(oo));// Hanley

            //面试题
            /*
            var number = 1;
            var obj = {
                number:2,
                showNumber:function(){
                    this.number = 3;
                    (function(){
                        console.log(this.number);// 1
                    })();//函数自执行，this指向的是window
                    console.log(this.number); // 3
                }
            };
            obj.showNumber();
            */



            //正则校验
            /*
                /d+ 匹配数字
                \b 匹配边界     - 匹配两边
                \B 匹配非边界   - 只匹配中间
                \d 匹配一个数字
                \D 匹配一个非数字
                \w 匹配字母数字和下火线
                \W 匹配非数字，非字母，非下划线 以外的（特殊字符）
                \^ 匹配字符串开头   ^hi
                \$ 匹配字符串结束   hi$
                [] 匹配自定一堆字符中的一个 ^[A-Za-z]at$ 
                [^] 不匹配这个集合中的任何一个字符 ^[^xyz]at$
                +  表示前一个模式，可以被重复1次或n次 ^go+gle$
                    ^g[aeiou]+gle$  括号中的一个可以出现多次
                *  可以被重复0此或n次   ^go*gle$   o可以重复n次或者没有
                ?  表示前一模式可以匹配 0次或1次  ^go?gle$
                {x} 表示前一模式只能被重复x次
                {x,y} 表示前一模式可以被重复x 到 y 次
                {x,}表示前一模式至少可以被重复x次
                () 指定一堆字符来匹配一个模式  ^(very )*large$  意思是 very可以出现0-n次
                |  分支匹配几个规则中个一个   ^abc.(com|net|org)$
                \ 转义符号，用于特殊符号转义 ^1\*\(2\+3\)



            */
           

        };



        $(function(){
            $("ul li").click(function(event){
                // event.target
                $(this).css("color","#f60").siblings().css("color","#333");
            });
        });

    </script>
</head>
<body>
    <ul>
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>
</body>
</html>